package top.gytf.unifiedcall.producer.response;

import org.springframework.lang.Nullable;
import top.gytf.distools.lifecycle.Manager;
import top.gytf.unifiedcall.common.api.ApiDefinition;

/**
 * API响应处理管理
 */
public interface ResponseHandlerManager extends Manager {
    /**
     * 判断是否支持处理响应
     * @param apiDefinition 响应基本信息
     * @return 是否支持
     */
    boolean isSupported(ApiDefinition apiDefinition);

    /**
     * 处理响应
     * @param context 响应上下文
     * @return 处理结果
     */
    @Nullable
    Object handle(ResponseHandlerContext context);
}
